The state object keeps track of information specific to the current state of the puzzle. Different types of search need different types of information. The basic state object is intended for plain depth first search. It keeps track of squares, words, and a cache for letter counts.